package cn.liuhuan1.blogsModel.service;

import cn.liuhuan1.blogsModel.dao.WebMessageDao;
import cn.liuhuan1.entity.PageResult;
import cn.liuhuan1.webModelBean.api.WebMessageImp;
import cn.liuhuan1.webModelBean.bo.WebMessageBo;
import cn.liuhuan1.webModelBean.vo.WebMessageVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

@Service
public class WebMessageService implements WebMessageImp {
    @Autowired
    public WebMessageDao webMessageDao;

    @Override
    public List<WebMessageVo> getWebMessage(){
        List<WebMessageVo> webMessageVoList = webMessageDao.getWebMessage();
        return webMessageVoList;
    }

    @Override
    public PageResult<WebMessageVo> getPageWebMessage(WebMessageBo webMessageBo) {
        if(webMessageBo.getPageCurrent() < 1){
            webMessageBo.setPageCurrent(0);
        }else{
            webMessageBo.setPageCurrent(webMessageBo.getPageCurrent() - 1);
        }
        if(webMessageBo.getPageSize() < 9){
            webMessageBo.setPageCurrent(10);
        }

        PageResult<WebMessageVo> pageResult = new PageResult<>();

        List<WebMessageVo> webMessageVoList = webMessageDao.getPageWebMessage(webMessageBo);

        int count = webMessageDao.getPageCount(webMessageBo);

        pageResult.setPageList(webMessageVoList);

        pageResult.setPageShowTotal(count);
        pageResult.setPageCurrent(webMessageBo.getPageCurrent());
        pageResult.setPageSize(webMessageBo.getPageSize());
        return pageResult;
    }

    @Override
    public WebMessageVo getWebMessageById(String id) {
        if(id != null && id.trim() != ""){
            WebMessageVo webMessageVo = webMessageDao.getWebMessageById(id);
            if(webMessageVo != null){
                return webMessageVo;
            }
        }
        throw new NullPointerException();
    }

    @Override
    public void saveWebMessage(WebMessageBo webMessageBo) {
        webMessageDao.saveWebMessage(webMessageBo);

    }

    @Override
    public void updateWebMessage(WebMessageBo webMessageBo) {
        webMessageDao.updateWebMessage(webMessageBo);

    }

    @Override
    @Transactional(rollbackFor = Exception.class)
    public void delWebMessage(String id) {
        if(id != null && id.trim() != ""){
            webMessageDao.delWebMessage(id);
        }else{
            throw new NullPointerException();
        }
    }

    @Override
    public void updateStatus(String status, String id) {
        if(id == null || id.trim() == "" || status == null || status.trim() == ""){
            throw new NullPointerException();
        }
        webMessageDao.updateStatus(status,id);
    }


}
